import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.File;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;


public class BufferedSocketServer {

	  public static Socket fromClientSocket = null;
	
  public static void main(String args[]) throws Exception 
  {
	    int cTosPortNumber = 8081;
	    String str;
	
	    ServerSocket servSocket = new ServerSocket(cTosPortNumber);
	    System.out.println("Waiting for a connection on " + cTosPortNumber);
	
	    Socket fromClientSocket = servSocket.accept();
	    
		
	    
	    PrintWriter pw = new PrintWriter(fromClientSocket.getOutputStream(), true);
	
	    BufferedReader br = new BufferedReader(new InputStreamReader(fromClientSocket.getInputStream()));
	
	    while ((str = br.readLine()) != null)
	    {
	    	System.out.println("Message reu: " + str);
	
	    		
			
		      if (str.equals("bye"))
		      {
		        pw.println("bye");
		        //send();
		        break;
		      } 
		      else
		      {
		        str = "Server returns: " + str;
		        pw.println(str);
		        System.out.println("---->" + fromClientSocket);
		      }
	    }
	    
	    send();
	    
/*
	    File myFile = new File("d:/toto.txt");
	    byte[] mybytearray = new byte[(int) myFile.length()];
	    BufferedInputStream bis = new BufferedInputStream(new FileInputStream(myFile));
	    bis.read(mybytearray, 0, mybytearray.length);
	    OutputStream os = fromClientSocket.getOutputStream();
	    os.write(mybytearray, 0, mybytearray.length);
	    os.flush();
	    fromClientSocket.close();
*/    
	
	    
/*	    
	    DataOutputStream dos = new DataOutputStream(fromClientSocket.getOutputStream());
		FileInputStream fis = new FileInputStream("d:/toto.txt");
		byte[] buffer = new byte[4096];
		
		while (fis.read(buffer) > 0)
		{
			dos.write(buffer);
		}
		
		fis.close();
		dos.close();	
*/	
		
	    
	    pw.close();
	    br.close();
	    fromClientSocket.close();
  }
  
  private static void send() // throws Exception 
  {
  	
	  /*	File myFile = new File("d:/toto.txt");
	    byte[] mybytearray = new byte[(int) myFile.length()];
	    BufferedInputStream bis = new BufferedInputStream(new FileInputStream(myFile));
	    bis.read(mybytearray, 0, mybytearray.length);
	    OutputStream os = fromClientSocket.getOutputStream();
	    os.write(mybytearray, 0, mybytearray.length);
	    os.flush();
	    fromClientSocket.close();*/
		System.out.println("Fonction send" + fromClientSocket);
	  
  }

}